Back

MSc Coursework Projects

Living Landscape: A Dynamic Terrain Simulation using DirectX11
A Real-Time rendering project using DirectX11.


Key Points

It is a simulation showcasing a dynamic terrain influenced by height mapping and tessellation, integrated with a realistic day-night cycle.

Dynamic Terrain and Tessellation: A height map manipulates a plane mesh that is dynamically tessellated for enhanced detail; Normals are correctly calculated using the height map for accurate lighting.

Post-Processing: Color grading for scene-wide adjustments in brightness, contrast, and saturation; Bloom with multiple passes, applied to both the sun and the scene for a radiant effect.

Additional Visual Features: Moving Clouds, Bitmap Clouds that move based on time; Sky Dome, A Sky Dome sphere rendered without the depth buffer to create the illusion of a distant skybox.

More details on the components and working can be provided upon request.



Repository Link



STIG: FSM Vs Fuzzy Logic
A comparative study of Finite State Machines and Fuzzy Logic in game AI.


Key Points

AI Navigation System in Unity - Developed an AI-driven car navigation system in Unity, comparing Finite State Machines (FSM) and Fuzzy Logic for autonomous obstacle avoidance and path-finding.

FSM vs. Fuzzy Logic Performance Analysis - Conducted a structured evaluation of both AI techniques across multiple tracks, analyzing efficiency, adaptability, and smoothness in navigation.

Realistic Simulation & Testing - Implemented trigger-based obstacle detection and waypoints to test AI behavior under controlled conditions, logging performance metrics like completion time and collision rate.

Mathematical and Computational Implementation - Designed FSM-based decision states and fuzzy logic inference models, integrating membership functions, rule-based reasoning, and defuzzification techniques to enhance AI behavior.

More details on the components and working can be provided upon request.



Repository Link



PacketPew: A 2D Networked Shooter
A 2 player, 2 dimensional shooting game made using low level network and rendering programming.


Key Points

Client-Server Networked Gameplay - Developed a real-time 2D shooter with authoritative server control, ensuring cheat prevention and synchronization between two players over a central server.

Optimized Network Protocols & Multithreading - Implemented TCP for reliable communication, leveraging SFML's networking module and a dedicated networking thread to minimize latency and improve responsiveness.

Lag Compensation & Prediction System - Integrated player input prediction, enemy position interpolation, and server reconciliation techniques to provide smooth gameplay under varying network conditions.

Robust Network Testing & Performance Evaluation - Tested with artificial lag, packet loss, and bandwidth constraints using Clumsy, identifying improvement areas for future scalability and protocol optimizations.

More details on the components and working can be provided upon request.



Repository Link



Living Landscape II
An advancement on the previous term's work, Living Landscape I.


Key Points

This is an addition to the previous term's graphics work, Living Landscape I.

This introduces a perlin noise based height map, whose properties can be changed in real-time.

A volumetric cloud system is also introduced, which uses a 3D texture with a perlin noise function to create realistic cloud formations. The clouds are rendered with alpha blending and depth testing for accurate layering.

The clouds are also affected by the laws of physics and fluid mechanics, allowing them to move and interact with the environment in a realistic manner.

Collision detection is implemented by comparing height values between objects and height maps, allowing for accurate object placement and interaction. The collision detection is also helping in the gameplay aspect of the project.

Flexible terrain shading is also implemented, allowing the terrain to be shaded with three different materials based on the height map and user provided values.

More details on the components and working can be provided upon request.



Repository Link



2054
A group project game with the 2nd year undergrad students from various streams.


Key Points

This is a group project done with some of the 2nd year undergrad students from Arts, Design, and Production streams.

2054 is a narrative based game in which the player is tasked with experiencing the main character's life and key moments.

The player lives through all of the key ages, toddler, child, teenager, and adult.

Throughout the game, the player will be asked to explore the dynamic house, which changes based on the age of the character, and solve puzzles to unlock memories.

These memories are still images sharing details about the character's life and the world around her.

At the end, the player discovers that the character is on her death bed.

More details on the components and working can be provided upon request.



Repository Link



Synthetic Player Simulator for Comparing Matchmaking Systems
A simulation framework modelling 10,000 players to benchmark matchmaking algorithms.

Video Coming Soon



Key Points

Developed a scalable Unity C# simulation framework capable of modelling 10,000 synthetic players with fixed real-skill distributions, allowing reproducible large-scale benchmarking of matchmaking systems.

Implemented and extended multiple rating algorithms (Elo, Glicko, TrueSkill) and designed SmartMatch, a novel system incorporating player performance metrics and loss-streak mitigation for engagement-driven matchmaking.

Modelled realistic multiplayer dynamics and player behaviours, including smurfing, probabilistic duels, assists, and clutch scenarios, to capture both win/loss outcomes and granular player performance statistics for evaluation.

Designed modular, extensible architecture with dedicated managers for UI, simulation control, players, and matchmaking logic, ensuring flexibility for testing different systems under identical conditions.

Conducted comparative analysis of fairness, rating convergence, smurf detection, and player experience across algorithms, producing data-driven insights into the trade-offs between accuracy, engagement, and progression.

More details on the components and working can be provided upon request.



Repository Link